type CustomType = {
    attrA?: string;
    attrB?: number;
    attrC?: boolean;
    attrD?: number[];
    attrE?: () => void;
    attrF?: object;
}

type CustomType3 = {
    attrH?: string;
}

interface CustomType2 extends CustomType {
    attrG: string;
}

const ct: CustomType2 = {attrA: '666', attrG: 'ccc'}
console.log(ct.attrG)

const ct2: CustomType | CustomType3 = {attrH: '888'}
console.log(ct2.attrH)